package de.tud.etit.blipz.services.json;

import java.lang.reflect.Type;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;

import de.tud.etit.blipz.entities.Contact;

public class ContactDeserializer implements JsonDeserializer<Contact> {

	@Override
	public Contact deserialize(JsonElement jsonElement, Type type,
			JsonDeserializationContext ctx) throws JsonParseException {

		if (jsonElement == null) {
			return null;
		}

		JsonObject jsonObject = jsonElement.getAsJsonObject();

		if (jsonObject == null) {
			return null;
		}

		Contact contact = new Contact();
		contact.setId(jsonObject.get("id").getAsLong());
		contact.setMobileNr(jsonObject.get("mobileNr").getAsString());
		contact.setConfirmed(jsonObject.get("confirmed").getAsBoolean());

		return contact;
	}

}
